document.write('<script type="text/javascript" src="' + context
		+ '/system/group/js/groupcombo4jsp.js"></script>');
document.write('<link type="text/css" rel="stylesheet" href="' + context
		+ '/system/group/css/groupmanage.css"/>');

document.write('<link rel="stylesheet" type="text/css" href="' + context
		+ '/app/maps/css/track.css">');
document.write('<script type="text/javascript" src="' + context
		+ '/app/maps/js/nsmap.js"></script>');
document.write('<script type="text/javascript" src="' + context
		+ '/app/maps/js/epoint.js"></script>');

/**
 * 过滤掉非监理人员节点
 * 
 * @param {}
 *            node
 * @return {}
 */
function selfShowNodeDecide(node) {
	// alert(node.text + '<--->' + node.attributes.type + '<--->' +
	// node.attributes.rating);
	var rnt = true;

	if (node.attributes.type == 'user'
			&& (node.attributes.rating != 1 && node.attributes.rating != 2)) {
		rnt = false;
	}
	return rnt;
}

var userId = '';
var userName = '';
var userType = '';
var dateString = '';
var tableName = '';
var tableDesc = '';

/**
 * 初始化轨迹查询页面
 * 
 * @param {}
 *            grid
 */
function init() {
	var trackListStore = new Ext.data.JsonStore({
				idProperty : 'id',
				remoteSort : false,
				totalProperty : 'totalCount',
				root : 'queryList',
				fields : ['USERID', 'USERNAME', 'GROUPNAME', 'BDNAME', 'CTIME',
						'LON', 'LAT'],

				// load using script tags for cross domain, if the data in on
				// the same domain as
				// this page, an HttpProxy would be better
				proxy : new Ext.data.ScriptTagProxy({
							url : context
									+ '/app/dataquery.do?method=querytrack'
						})
			});

	var sm = new Ext.grid.CheckboxSelectionModel();

	var trackListGrid = new Ext.grid.GridPanel({
		id : 'trackList',
		store : trackListStore,
		region : 'north',
		columns : [sm, {
					header : '用户姓名',
					width : 150,
					sortable : true,
					dataIndex : 'USERNAME'
				}, {
					header : '用户单位',
					width : 150,
					sortable : true,
					dataIndex : 'GROUPNAME'
				}, {
					header : '负责标段',
					width : 150,
					sortable : false,
					dataIndex : 'BDNAME'
				}, {
					header : '时间',
					width : 75,
					sortable : true,
					dataIndex : 'CTIME',
					renderer : renderDateHeader
				}, {
					header : '定位类型',
					width : 75,
					sortable : false,
					dataIndex : 'LON',
					renderer : renderLONHeader
				}],
		sm : sm,
		stripeRows : true,
		split : true,
		collapsible : true,
		height : 200,
		autoExpandColumn : 'USERNAME',
		title : '历史轨迹信息列表',
		border : false,
		viewConfig : {
			forceFit : true
		},
		// config options for stateful behavior
		stateful : true,
		stateId : 'grid',
		loadMask : {
			msg : "数据加载中，请稍等..."
		},
		tbar : new Ext.Toolbar({
			autoWidth : true,
			autoShow : true,
			items : [{
				iconCls : 'objqueryset',
				text : '数据查询',
				handler : function() {
					var tablesCombo = new Ext.form.ComboBox({
								id : '_tableName',
								name : 'tableName',
								fieldLabel : '历史数据',
								xtype : 'combo',
								selectOnFocus : true,
								emptyText : '请选择..',
								forceSelection : true,
								triggerAction : 'all',
								mode : 'local', // 数据模式,local为本地模式
								valueField : 'id', // 提交表单时，下拉框的值
								displayField : 'name', // 显示在页面上下拉框的值
								editable : false,
								allowBlank : false,
								store : new Ext.data.SimpleStore({ // 填充的数据
									fields : ['id', 'name'],
									data : tableData
								}),
								listeners : {
									select : function(combo, record, index) {
										var id = record.data.id;
										var name = record.data.name;

										queryForm.form.findField('qtablename')
												.setValue(id);
										queryForm.form.findField('qtabledesc')
												.setValue(name);

										var date = id.replace('APP_NS_TRACK',
												'');
										var year = date.substring(0, 4);
										var month = date.substring(4, 6);
										var day = date.substring(6, 8);
										if (trackDate.getValue() == '') {
											trackDate.setValue(month + '/'
													+ day + '/' + year);
										}
									}
								}
							});

					var UserChkCombo = getUserChkCombo4Single('quserid',
							'qusername', 'qusertype', groupId, false);

					UserChkCombo.fieldLabel = '监理人员';

					var trackDate = new Ext.form.DateField({
								fieldLabel : '详细日期',
								name : 'qdate',
								id : 'qdate',
								format : 'Y-m-d',
								allowBlank : false,
								value : ''
							});

					var formUrl = context + '/system/result4form.jsp?';

					formUrl += '&quserid=' + userId;
					formUrl += '&quserid_=' + userName;
					formUrl += '&qusername=' + userName;
					formUrl += '&qusertype=' + userType;
					formUrl += '&qdate=' + dateString;
					formUrl += '&qtablename=' + tableName;
					formUrl += '&qtabledesc=' + tableDesc;
					formUrl += '&_tableName=' + tableDesc;

					var queryForm = new Ext.FormPanel({
								id : 'trackQueryForm',
								labelWidth : 100, // label settings
								// here
								// cascade unless
								// overridden
								frame : false,
								bodyStyle : 'padding:5px 5px 0',
								width : 350,
								defaults : {
									width : 230
								},
								defaultType : 'textfield',

								items : [UserChkCombo, trackDate, tablesCombo,
										new Ext.form.Hidden({
													id : 'quserid',
													name : 'quserid',
													value : ''
												}), new Ext.form.Hidden({
													id : 'qusername',
													name : 'qusername',
													value : ''
												}), new Ext.form.Hidden({
													id : 'qusertype',
													name : 'qusertype',
													value : ''
												}), new Ext.form.Hidden({
													id : 'qtablename',
													name : 'qtablename',
													value : ''
												}), new Ext.form.Hidden({
													id : 'qtabledesc',
													name : 'qtabledesc',
													value : ''
												})]
							});

					queryForm.getForm().load({
								url : encodeURI(formUrl),
								waitTitle : '提示',
								waitMsg : '正在加载数据,请稍候...',
								animEl : "loding",
								success : function(form, action) {

								},
								failure : function(form, action) {
									Ext.Msg.alert('初始化查询项失败');
								}
							});

					var queryWin = new Ext.Window({
						renderTo : Ext.getBody(),
						layout : 'fit',
						width : 450,
						height : 300,
						title : '历史轨迹查询',
						resizable : true,
						plain : true,
						modal : true,

						items : [queryForm],

						buttons : [{
							id : 'objectQueryButton',
							text : '查 询',
							handler : function() {
								if (queryForm.form.isValid()) {
									userId = queryForm.form
											.findField('quserid').getValue();
									userName = queryForm.form
											.findField('qusername').getValue();
									userType = queryForm.form
											.findField('qusertype').getValue();
									dateString = queryForm.form
											.findField('qdate').getEl().dom.value;
									tableName = queryForm.form
											.findField('qtablename').getValue();
									tableDesc = queryForm.form
											.findField('qtabledesc').getValue();

									trackListGrid.getStore().reload({
												params : {
													start : 0,
													limit : 20,
													quserid : userId,
													qdate : parseDate(dateString),
													qtable : tableName
												}
											});

									queryWin.close();
								}
							}
						}, {
							text : '重 置',
							handler : function() {
								queryForm.form.reset();
							}
						}, {
							text : '关 闭',
							handler : function() {
								queryWin.close();
							}
						}]
					});

					queryWin.show(this);
				}
			}, '-', {
				text : '轨迹回放',
				iconCls : 'track',
				handler : function() {
					selNodes = trackListGrid.getSelectionModel()
							.getSelections();
					playTrack(selNodes);

				}
			}]
		}),
		bbar : new Ext.PagingToolbar({
					pageSize : 20,// 每页显示的记录值
					store : trackListStore,
					displayInfo : true,
					displayMsg : '总记录数 {0} - {1} of {2}',
					emptyMsg : "没有记录"
				})
	});

	trackListStore.load({
				params : {
					start : 0,
					limit : 20
				}
			});

	trackListStore.on('beforeload', function(thiz, options) {
				Ext.apply(thiz.baseParams, {
							qtable : tableName,
							quserid : userId,
							qdate : parseDate(dateString)
						});
			});

	var viewport = new Ext.Viewport({
		layout : 'fit',
		items : [new Ext.Panel({
			autoScroll : false,
			layout : 'border',
			border : false,
			layoutConfig : {
				titleCollapse : true,
				animate : true,
				activeOnTop : false
			},

			items : [trackListGrid, {
				region : 'center',
				layout : 'column',
				border : false,
				autoScroll : false,
				title : '监理人员轨迹回放地图',
				html : '<div id="mapObj" style="width:100%;height:100%;"></div>'
			}]

		})],

		listeners : {
			render : function() {

			}
		}
	});

	loadMap();
}

function renderDateHeader(value, cellmeta, record, rowIndex, columnIndex, store) {
	return formatTime(value);;
}

function renderLONHeader(value, cellmeta, record, rowIndex, columnIndex, store) {
	if (value.length > 15) {
		return '基站定位';
	} else {
		return 'GPS定位';
	}
}

var webgis;

function loadMap() {
	// 创建地图对象
	webgis = new EMaps("mapObj");

	// 添加地图控制拉杆
	webgis.addControl(new ELargeMapControl());
	// 设置地图的中心和缩放级别
	webgis.centerAndZoom(new EPoint(emapCenter), parseInt(defaultZoomSize));
//
//	// 第一次数据
//	drawBridge(webgis);
//	drawRiverway(webgis);
//	drawPicket(webgis);
//	// 第二次数据
//	drawRiverway2(webgis);
//	drawPicket2(webgis);
//	
//		//第三次数据
//			drawRiverway3(webgis);
//			drawPicket3(webgis);
//	// 第四次数据
//			drawRiverway4(webgis);
//			drawPicket4(webgis);
//			drawBridge4(webgis);
//			drawdhx4(webgis);
	drawmap(webgis);
}

function playTrack(selNodes) {
	if (!selNodes || selNodes.length == 0) {
		alert('请选择轨迹');
		return;
	}

	webgis.clearMarkers();
	webgis.clearPolylines();

//	// 第一次数据
//	drawBridge(webgis);
//	drawRiverway(webgis);
//	drawPicket(webgis);
//	// 第二次数据
//	drawRiverway2(webgis);
//	drawPicket2(webgis);
//	// 第三次数据
//	drawRiverway3(webgis);
//	drawPicket3(webgis);
//	
//	// 第四次数据
//	drawRiverway4(webgis);
//	drawPicket4(webgis);
//	drawBridge4(webgis);
//	drawdhx4(webgis);

	drawmap(webgis);
	var arrayPts2 = new Array;
	Ext.each(selNodes, function(node) {
		var mapKong = '<a href="javascript:zoomoutIt(\'' + node.data.LON
				+ '\', \'' + node.data.LAT + '\');">定位</a>';
		mapKong += '&nbsp;<a href="javascript:zoominIt(\'' + node.data.LON
				+ '\', \'' + node.data.LAT + '\');">回置</a>';

		var infoKong = '<hr>';
		infoKong += '<table style="font-size:13px;" width="350" border="0">';
		infoKong += '<tr>';
		infoKong += '<td width="100">用户姓名：</td>';
		infoKong += '<td><b>' + node.data.USERNAME + '</b></td>';
		infoKong += '</tr>';
		infoKong += '<td width="100">监理单位：</td>';
		infoKong += '<td><b>' + node.data.GROUPNAME + '</b></td>';
		infoKong += '</tr>';
		infoKong += '<td width="100">负责标段：</td>';
		infoKong += '<td><b>' + node.data.BDNAME + '</b></td>';
		infoKong += '</tr>';
		infoKong += '<td width="100">轨迹上传时间：</td>';
		infoKong += '<td><b>' + formatTime(node.data.CTIME) + '</b></td>';
		infoKong += '</tr>';
		// alert(node.data.LON + '<---->' + node.data.LAT);
		var point = new EPoint(node.data.LON, node.data.LAT, true);

		var iconLabel = '<div style="position:absolute;left:0;white-space:nowrap;">';
		iconLabel += '<table border="0" cellpadding="0" cellspacing="0">';
		iconLabel += '<tr>';
		iconLabel += '<td>';
		iconLabel += '<img src="' + serverPath + context
				+ '/app/maps/images/cp.gif' + '">';
		iconLabel += '</td>';
		iconLabel += '<td>';
		iconLabel += '<table border="0" cellpadding="1" cellspacing="1" bgcolor="#C8C8FF" style="filter:alpha(opacity=70); -moz-opacity:0.5; -khtml-opacity: 0.5; opacity: 0.5;">';
		iconLabel += '<tr><td valign="middle" style="white-space:nowrap;font-weight:bold;color:#434343;font-size:14px;padding:5px;">'
				+ formatTime(node.data.CTIME) + '</td></tr>';
		iconLabel += '</table>';
		iconLabel += '</td>';
		iconLabel += '</tr>';
		iconLabel += '</table>';
		iconLabel += '</div>';

		var icon = new EIcon(iconLabel, 24, 25, 0, 0);
		var infoWindow = new EInfoWindow(
				'<font style="font-size:13px;font-weight:bold;">轨迹点信息</font>&nbsp;&nbsp;&nbsp;'
						+ mapKong, infoKong);
		var pointObject = new EMarker("", point, icon, infoWindow);
		webgis.addOverlay(pointObject);
		arrayPts2.push(point);
	});
	if (arrayPts2.length > 1) {
		webgis.centerAndZoom(arrayPts2[0], 12);

		/** ************************添加轨迹线**********************start********************** */
		// alert(webgis.clearPolylines());
		var polylineL = new EPolyline("", arrayPts2, new EBrush("red", 4), "");
		webgis.addOverlay(polylineL);
		/** ************************添加轨迹线*********************end************************ */
		// 测试线路回放
		webgis.setTrackArray(arrayPts2, 5);
		webgis.simulateWithIcon(new EIcon(serverPath + context
						+ "/app/maps/images/xiaoqiu.png", 25, 25, 0, 0));
	}
}
function zoomoutIt(lon, lat) {
	// webgis.setMode('zoomin');
	// 设置地图的中心和缩放级别
	webgis.centerAndZoom(new EPoint(lon, lat, true), 100);
}

function zoominIt(lon, lat) {
	// webgis.setMode('zoomin');
	// 设置地图的中心和缩放级别
	webgis.centerAndZoom(new EPoint(lon, lat, true), 10);
}